package br.com.ucb.invista.controller;

import java.io.Serializable;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import br.com.ucb.invista.dao.ProdutoDao;
import br.com.ucb.invista.domain.Produto;
import br.com.ucb.invista.utils.Constantes;

@ManagedBean(name = "produtoController")
@SessionScoped
public class ProdutoController implements Serializable {

	private static final long serialVersionUID = 1L;
	
	private ProdutoDao iprodutoDao;
	private Produto produto;
	
	public ProdutoController() {
		iprodutoDao = new ProdutoDao();
		produto = new Produto();
	}
	
	public String novo() {
		this.limparCampos();
		return Constantes.paginaProdutoCadastrarAlterar;
	}
	
	public String cancelar() {
		this.limparCampos();
		return Constantes.paginaProdutoListar;
	}
	
	public void limparCampos() {
		this.produto = new Produto();
		this.iprodutoDao = new ProdutoDao();
	}
	
	public String salvar() {
		iprodutoDao.salvar(produto);
			this.limparCampos();
					return Constantes.paginaProdutoCadastrarAlterar;
	}
	
	public String alterar(Produto produto) {  
		this.produto = produto;
		iprodutoDao.alterar(produto);
		return Constantes.paginaProdutoCadastrarAlterar;
	}
	
	public String excluir(Produto produtoParametro) {
		iprodutoDao.excluir(produtoParametro);
		this.limparCampos();
		return "listarProduto?redirect=true";
	}
	
	public String abrirPaginaProdutoCadastrar() {
		return Constantes.paginaProdutoCadastrarAlterar;
	}
	
	public String abrirPaginaProdutoListar() {
		return Constantes.paginaProdutoListar;
	}
	
	public String abrirPaginaProdutoAlterar() {
		return Constantes.paginaProdutoCadastrarAlterar;
	}
	
	public ProdutoDao getProdutoDao() {
		return iprodutoDao;
	}

	public void setProdutoDao(
			ProdutoDao iprodutoDao) {
		this.iprodutoDao = iprodutoDao;
	}

	public Produto getProduto() {
		return produto;
	}

	public void setProduto(Produto produto) {
		this.produto = produto;
	}
}
